# 作者: 赵若云
# 2025年02月17日22时04分01秒
# 3478783573@qq.com


# 2.自己定义变量赋值不同的数据类型并打印，并使用type
def use_type(num1):
    print(type(num1))


# 3.能够将整型转为不同进制，进行输出（与上课一致）
def base_conversion(num1):
    print(bin(num1))
    print(oct(num1))
    print(hex(num1))


# 4.实现从1到100之间的奇数求和
def sum_100():
    i = 1
    result = 0
    while i < 100:
        if i % 2 == 0:
            pass
        else:
            result += i
        i = i + 1
    print(result)


# 5.打印九九乘法表（直接百度乘法表图像，与其一致即可）
def multiplication_table_print():
    i = 1
    my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    for num1 in my_list:
        for num2 in my_list:
            if num1 >= num2:
                print(f'{num2}*{num1}={num1 * num2}', end=' ')
        print()


# 6.统计一个整数对应的二进制数的1的个数。输入一个整数（可正可负，负数就按64位去遍历即可）， 输出该整数的二进制包含1的个数（使用位运算）
def count_ones():
    count = 0  # 统计1的个数
    i = 0  # 限制64位
    x = int(input('请输入一个整数'))
    while x:
        i = i + 1
        count += x & 1  # 取最低位
        x = x >> 1
        if i >= 64:
            break
    print(count)


a = 123
b = 1.23456789
c = 'abc'
d = True

use_type(a)
use_type(b)
use_type(c)
use_type(d)

base_conversion(a)

sum_100()

multiplication_table_print()

count_ones()
